package models

import (
	"order_srv/basic/config"
	"time"
)

// 行程分享
type ShareTrip struct {
	Id        int32     `gorm:"column:id;type:int;primaryKey;not null;" json:"id"`
	OrderId   uint32    `gorm:"column:order_id;type:int UNSIGNED;comment:订单id;not null;" json:"order_id"`                           // 订单id
	UserId    uint32    `gorm:"column:user_id;type:int UNSIGNED;comment:用户id;not null;" json:"user_id"`                             // 用户id
	ShareTo   string    `gorm:"column:share_to;type:text;comment:分享对象列表(JSON格式);not null;" json:"share_to"`                   // 分享对象列表(JSON格式)
	ShareType string    `gorm:"column:share_type;type:varchar(20);comment:分享类型;sms, email, wechat等;not null;" json:"share_type"` // 分享类型
	CreateAt  time.Time `gorm:"column:create_at;type:datetime;not null;default:CURRENT_TIMESTAMP;" json:"create_at"`
	UpdateAt  time.Time `gorm:"column:update_at;type:datetime;not null;default:CURRENT_TIMESTAMP;" json:"update_at"`
	DeleteAt  time.Time `gorm:"column:delete_at;type:datetime;default:NULL;" json:"delete_at"`
}

func (s *ShareTrip) TableName() string {
	return "share_trip"
}

// 创建行程分享记录
func (s *ShareTrip) CreateShareTrip() error {
	return config.DB.Create(&s).Error
}
